from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []

    攻击次数 = 1
    攻击次数2 = 0
    攻击次数3 = 0
    攻击次数4 = 0

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    计算CD = 0

    def 等效CD(self, **argv):
        # 武器类型 输出类型 额外CDR 手搓收益 恢复
        武器类型 = argv.get('武器类型', '')
        输出类型 = argv.get('输出类型', '')
        额外CDR = argv.get('额外CDR', 1.0)
        # 手搓收益 = argv.get('手搓收益', 1.0)
        面板显示 = argv.get('面板显示', False)

        cdr = 0
        if self.手搓:
            if self.所在等级 >= 15 and self.所在等级 <= 30:
                cdr = 0.01 * self.手搓收益
            if self.所在等级 >= 35 and self.所在等级 <= 70:
                cdr = 0.02 * self.手搓收益
            if self.所在等级 >= 75 and self.所在等级 <= 100:
                cdr = 0.05 * self.手搓收益
            if self.所在等级 in [50, 85, 100]:
                cdr = 0.05 * self.手搓收益

        return round(max(self.CD * self.CDR * 额外CDR / (self.恢复 if not 面板显示 else 1) * (self.武器CD系数(武器类型, self.武器惩罚类型) - (cdr if not 面板显示 else 0)), self.CD * 0.3, 1), 1)


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    关联技能 = ['挑击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '挑击'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10
    MP = [0, 0]
    # 物理攻击力：<data0>%
    data0 = [int(i*1.128) for i in [0, 110, 123, 134, 147, 159, 171, 184, 196, 208, 221, 233, 245, 257, 269, 281, 293, 307, 318, 331, 343, 355, 368, 379, 392, 403, 416, 428, 441, 454, 465, 478, 489,
                                    502, 513, 526, 538, 551, 564, 575, 588, 600, 612, 624, 636, 648, 660, 674, 686, 698, 710, 722, 734, 747, 758, 771, 783, 796, 809, 820, 833, 844, 857, 868, 881, 894, 905, 919, 930, 943, 954]]
    hit0 = 1
    CD = 2.0
    TP成长 = 0.10
    TP上限 = 7


class 技能2(主动技能):
    名称 = '暗影斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [17, 140]
    # 魔法攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 709, 781, 853, 925, 995, 1070, 1142, 1213, 1284, 1358, 1428, 1502, 1573, 1644, 1717, 1789, 1860, 1933, 2006, 2076, 2148, 2222, 2292, 2364, 2437, 2511, 2581, 2652, 2725, 2798, 2870, 2940, 3014,
                                    3084, 3158, 3229, 3301, 3373, 3444, 3519, 3591, 3661, 3732, 3806, 3877, 3949, 4020, 4094, 4166, 4238, 4309, 4381, 4452, 4524, 4599, 4669, 4740, 4814, 4887, 4956, 5030, 5099, 5173, 5245, 5316, 5388, 5460, 5534, 5607, 5676]]
    hit0 = 1
    CD = 3.15
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = '滑斩'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [2, 100]
    # 物理攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 920, 1012, 1105, 1199, 1293, 1385, 1479, 1572, 1665, 1760, 1852, 1945, 2040, 2133, 2225, 2319, 2412, 2505, 2600, 2692, 2785, 2880, 2973, 3065, 3159, 3253, 3345, 3440, 3532, 3625, 3720, 3813,
                                    3905, 3999, 4093, 4185, 4280, 4372, 4466, 4560, 4653, 4745, 4841, 4933, 5025, 5120, 5212, 5306, 5400, 5493, 5585, 5681, 5773, 5867, 5960, 6053, 6148, 6240, 6333, 6428, 6521, 6613, 6707, 6800, 6893, 6988, 7080, 7173, 7268, 7361]]
    hit0 = 1
    CD = 3.0


class 技能4(主动技能):
    名称 = '跃斩'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [5, 180]
    # 物理攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 687, 756, 827, 897, 966, 1035, 1105, 1174, 1243, 1314, 1385, 1455, 1525, 1594, 1663, 1734, 1803, 1874, 1944, 2013, 2082, 2153, 2222, 2291, 2360, 2431, 2500, 2570, 2642, 2711, 2780, 2850, 2920,
                                    2990, 3060, 3129, 3198, 3268, 3337, 3407, 3477, 3548, 3617, 3687, 3756, 3826, 3897, 3968, 4037, 4107, 4176, 4246, 4316, 4385, 4454, 4523, 4594, 4664, 4733, 4803, 4872, 4941, 5011, 5084, 5153, 5223, 5292, 5361, 5431, 5500]]
    hit0 = 1
    # 装备钝器时， 冲击波物理攻击力：<data1>%
    data1 = [int(i*1.125) for i in [0, 546, 604, 662, 720, 777, 836, 894, 951, 1009, 1067, 1125, 1183, 1240, 1299, 1357, 1415, 1472, 1530, 1590, 1646, 1703, 1763, 1820, 1877, 1937, 1993, 2051, 2111, 2168, 2225, 2285, 2342, 2398,
                                    2457, 2516, 2573, 2631, 2689, 2749, 2805, 2863, 2923, 2979, 3037, 3095, 3152, 3211, 3270, 3326, 3383, 3442, 3500, 3557, 3615, 3674, 3733, 3791, 3849, 3906, 3965, 4022, 4080, 4138, 4196, 4254, 4312, 4369, 4428, 4485, 4543]]
    hit1 = 0
    CD = 3.0
    # 钝器冲击波

    def 等效百分比(self, 武器类型):
        if 武器类型 == '钝器':
            self.hit1 = 1
        else:
            self.hit1 = 0
        return super().等效百分比(武器类型)


class 技能5(主动技能):
    名称 = '黑暗十字斩'
    类型 = '物理'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [2, 170]
    # 斩击物理攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 154, 170, 185, 201, 217, 233, 248, 264, 279, 295, 311, 327, 342, 358, 374, 390, 404, 420, 437, 453, 467, 483, 500, 515, 530, 546, 563, 578, 593, 609, 624, 641, 656,
                                    671, 687, 704, 719, 734, 750, 765, 781, 797, 813, 828, 844, 860, 876, 890, 906, 923, 939, 953, 969, 986, 1001, 1016, 1032, 1048, 1064, 1079, 1095, 1110, 1127, 1142, 1158, 1173, 1189, 1205, 1220, 1236]]
    hit0 = 2
    # 黑暗十字物理攻击力：<data1>%
    data1 = [int(i*1.125) for i in [0, 678, 748, 816, 885, 954, 1023, 1093, 1161, 1231, 1299, 1368, 1436, 1505, 1573, 1643, 1712, 1781, 1849, 1918, 1987, 2056, 2124, 2195, 2263, 2332, 2401, 2470, 2539, 2607, 2676, 2746, 2815, 2883,
                                    2953, 3021, 3090, 3158, 3228, 3297, 3366, 3435, 3504, 3572, 3641, 3711, 3779, 3849, 3918, 3987, 4055, 4124, 4193, 4262, 4330, 4401, 4469, 4538, 4606, 4676, 4744, 4812, 4880, 4951, 5020, 5088, 5158, 5226, 5295, 5363, 5433]]
    hit1 = 1
    CD = 3.0
    TP成长 = 0.10
    TP上限 = 7


class 技能6(主动技能):
    名称 = '暗影·波动剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [2, 110]
    # 魔法攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 772, 849, 928, 1006, 1085, 1162, 1241, 1319, 1398, 1475, 1555, 1632, 1712, 1788, 1868, 1945, 2024, 2101, 2181, 2261, 2337, 2417, 2494, 2574, 2650, 2730, 2807, 2886, 2963, 3043, 3121, 3199, 3277,
                                    3356, 3434, 3512, 3590, 3669, 3746, 3826, 3903, 3983, 4061, 4139, 4218, 4296, 4374, 4452, 4532, 4608, 4688, 4765, 4845, 4921, 5001, 5078, 5158, 5234, 5314, 5392, 5471, 5548, 5627, 5705, 5783, 5861, 5940, 6020, 6097, 6176]]
    hit0 = 1
    CD = 3.15
    TP成长 = 0.10
    TP上限 = 7


class 技能7(主动技能):
    名称 = '旋涡斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [2, 110]
    # 上斩魔法攻击力：<data0>%
    data0 = [int(i*1.112) for i in [0, 301, 332, 361, 393, 423, 454, 484, 515, 546, 575, 607, 637, 668, 698, 729, 759, 791, 820, 852, 882, 911, 943, 973, 1005, 1034, 1065, 1096, 1127, 1156, 1188, 1218, 1248, 1279, 1309,
                                    1341, 1370, 1402, 1432, 1463, 1493, 1524, 1555, 1584, 1615, 1646, 1677, 1706, 1738, 1768, 1800, 1829, 1860, 1891, 1922, 1952, 1982, 2013, 2043, 2074, 2104, 2136, 2165, 2197, 2227, 2258, 2288, 2318, 2350, 2379, 2410]]
    hit0 = 1
    # 下斩魔法攻击力：<data1>%
    data1 = [int(i*1.112) for i in [0, 463, 510, 557, 604, 652, 698, 746, 793, 839, 886, 933, 980, 1028, 1075, 1121, 1169, 1216, 1262, 1309, 1358, 1404, 1451, 1498, 1545, 1592, 1639, 1685, 1734, 1781, 1827, 1874, 1922, 1968,
                                    2015, 2062, 2109, 2157, 2203, 2250, 2297, 2344, 2391, 2439, 2485, 2533, 2580, 2626, 2673, 2721, 2768, 2815, 2862, 2909, 2956, 3003, 3049, 3096, 3145, 3191, 3238, 3285, 3332, 3379, 3426, 3473, 3521, 3568, 3614, 3661, 3709]]
    hit1 = 3
    # 暗黑波动魔法攻击力：<data2>%
    data3 = [int(i*1.112) for i in [0, 517, 569, 622, 674, 728, 779, 832, 884, 936, 990, 1042, 1095, 1147, 1199, 1253, 1304, 1358, 1409, 1462, 1515, 1567, 1619, 1673, 1725, 1778, 1829, 1882, 1935, 1988, 2040, 2092, 2145, 2198,
                                    2250, 2302, 2355, 2408, 2460, 2513, 2564, 2618, 2670, 2722, 2775, 2827, 2881, 2933, 2985, 3038, 3089, 3144, 3195, 3248, 3300, 3353, 3405, 3458, 3510, 3563, 3616, 3668, 3720, 3773, 3826, 3879, 3930, 3983, 4035, 4088, 4141]]
    hit3 = 1
    CD = 8.4
    TP成长 = 0
    TP上限 = 3

    # TP影响第二段攻击次数
    def 等效百分比(self, **argv):
        self.hit1 += self.TP等级
        return super().等效百分比(**argv)


class 技能8(主动技能):
    名称 = '暗月斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [3, 120]
    # 月形斩击魔法攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 485, 533, 585, 635, 681, 730, 780, 832, 878, 928, 977, 1028, 1074, 1125, 1173, 1221, 1275, 1321, 1371, 1420, 1471, 1519, 1568, 1616, 1665, 1716, 1766, 1817,
                                    1864, 1912, 1962, 2013, 2059, 2111, 2159, 2205, 2255, 2307, 2357, 2406, 2452, 2503, 2552, 2600, 2650, 2699, 2748, 2798, 2849, 2897, 2948, 2995, 3047, 3093, 3145, 3195, 3241, 3290, 3341]]
    hit0 = 1
    # 单手上斩魔法攻击力：<data1>%
    data1 = [int(i*1.125) for i in [0, 525, 578, 631, 686, 739, 792, 844, 900, 952, 1006, 1061, 1111, 1164, 1217, 1271, 1327, 1379, 1431, 1486, 1539, 1592, 1643, 1698, 1750, 1806, 1861, 1912, 1965,
                                    2018, 2073, 2125, 2177, 2233, 2283, 2339, 2393, 2443, 2498, 2552, 2604, 2660, 2710, 2765, 2818, 2873, 2926, 2979, 3029, 3085, 3137, 3191, 3246, 3299, 3354, 3409, 3460, 3512, 3566, 3620]]
    hit1 = 1
    CD = 4.2
    TP成长 = 0.10
    TP上限 = 7


class 技能9(主动技能):
    名称 = '跃地斩'
    类型 = '物理'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [4, 100]
    # 物理攻击力：<data0>%
    data0 = [int(i*1.122) for i in [0, 392, 432, 470, 510, 550, 590, 630, 669, 709, 749, 789, 828, 867, 907, 948, 988, 1028, 1067, 1107, 1147, 1187, 1226, 1265, 1305, 1345, 1385, 1425, 1464, 1504, 1544, 1583, 1623, 1662, 1702,
                                    1742, 1783, 1823, 1862, 1902, 1941, 1981, 2021, 2060, 2100, 2140, 2180, 2220, 2259, 2298, 2338, 2378, 2418, 2457, 2497, 2537, 2578, 2618, 2658, 2696, 2736, 2776, 2816, 2856, 2895, 2935, 2975, 3015, 3054, 3093, 3133]]
    hit0 = 4
    CD = 4.0
    TP成长 = 0.10
    TP上限 = 7


class 技能10(主动技能):
    名称 = '冥光斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [15, 440]
    # 魔法攻击力：<data0>%
    data0 = [int(i*1.108) for i in [0, 534, 589, 643, 697, 752, 806, 860, 914, 968, 1023, 1077, 1131, 1185, 1239, 1295, 1348, 1403, 1456, 1511, 1566, 1621, 1674, 1727, 1782, 1836, 1892, 1945, 2000, 2053, 2108, 2163, 2217, 2271,
                                    2324, 2380, 2434, 2487, 2542, 2596, 2651, 2706, 2759, 2814, 2869, 2923, 2977, 3030, 3085, 3140, 3194, 3248, 3302, 3356, 3411, 3465, 3520, 3573, 3628, 3682, 3736, 3791, 3844, 3899, 3953, 4008, 4061, 4116, 4170, 4225, 4279]]
    hit0 = 2
    CD = 10.5
    TP成长 = 0.10
    TP上限 = 7


class 技能11(主动技能):
    名称 = '暗影三击剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    MP = [10, 600]
    # 刺击下段魔法攻击力：<data0>%
    data0 = [int(i*1.112) for i in [0, 597, 693, 789, 884, 980, 1075, 1171, 1265, 1362, 1456, 1552, 1647, 1743, 1838, 1934, 2030, 2124, 2221, 2315, 2411, 2506, 2602, 2696, 2793, 2889, 2983, 3080, 3174, 3270, 3365, 3461, 3555, 3652,
                                    3746, 3842, 3939, 4033, 4129, 4224, 4320, 4414, 4511, 4605, 4701, 4796, 4892, 4988, 5083, 5179, 5273, 5370, 5464, 5560, 5654, 5751, 5845, 5941, 6038, 6132, 6228, 6323, 6419, 6513, 6610, 6704, 6800, 6895, 6991, 7086, 7182]]
    hit0 = 1
    # 刺击上段魔法攻击力：<data1>%
    data1 = [int(i*1.112) for i in [0, 597, 693, 789, 884, 980, 1075, 1171, 1265, 1362, 1456, 1552, 1647, 1743, 1838, 1934, 2030, 2124, 2221, 2315, 2411, 2506, 2602, 2696, 2793, 2889, 2983, 3080, 3174, 3270, 3365, 3461, 3555, 3652,
                                    3746, 3842, 3939, 4033, 4129, 4224, 4320, 4414, 4511, 4605, 4701, 4796, 4892, 4988, 5083, 5179, 5273, 5370, 5464, 5560, 5654, 5751, 5845, 5941, 6038, 6132, 6228, 6323, 6419, 6513, 6610, 6704, 6800, 6895, 6991, 7086, 7182]]
    hit1 = 1
    # 刺击中段魔法攻击力：<data2>%
    data2 = [int(i*1.112) for i in [0, 1196, 1387, 1578, 1769, 1960, 2151, 2342, 2533, 2724, 2914, 3105, 3295, 3486, 3677, 3868, 4059, 4250, 4440, 4632, 4823, 5013, 5204, 5395, 5585, 5777, 5968, 6158, 6349, 6540, 6731, 6922, 7113, 7303, 7494,
                                    7685, 7876, 8067, 8258, 8448, 8639, 8829, 9021, 9212, 9402, 9593, 9784, 9975, 10166, 10357, 10547, 10738, 10929, 11120, 11311, 11502, 11692, 11883, 12075, 12265, 12456, 12647, 12837, 13028, 13220, 13410, 13601, 13791, 13983, 14174, 14364]]
    hit2 = 1
    CD = 8.4


class 技能12(主动技能):
    名称 = '突刺'
    类型 = '物理'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [10, 300]
    # 普通物理攻击力：<data0>%
    data0 = [int(i*1.125) for i in [0, 197, 218, 238, 258, 278, 299, 318, 338, 358, 379, 399, 419, 439, 460, 480, 500, 520, 541, 560, 580, 600, 621, 641, 660, 681, 701, 721, 741, 762, 781, 801, 821, 842, 862, 882,
                                    902, 923, 943, 963, 983, 1004, 1023, 1043, 1063, 1084, 1104, 1124, 1143, 1164, 1184, 1204, 1224, 1244, 1264, 1284, 1304, 1325, 1345, 1365, 1385, 1406, 1426, 1446, 1465, 1486, 1506, 1526, 1546, 1567, 1587]]
    hit0 = 3
    # 普通物理攻击力：<data1>% 光剑/太刀
    data1 = [int((i*0.7)*1.125) for i in [0, 197, 218, 238, 258, 278, 299, 318, 338, 358, 379, 399, 419, 439, 460, 480, 500, 520, 541, 560, 580, 600, 621, 641, 660, 681, 701, 721, 741, 762, 781, 801, 821, 842, 862,
                                          882, 902, 923, 943, 963, 983, 1004, 1023, 1043, 1063, 1084, 1104, 1124, 1143, 1164, 1184, 1204, 1224, 1244, 1264, 1284, 1304, 1325, 1345, 1365, 1385, 1406, 1426, 1446, 1465, 1486, 1506, 1526, 1546, 1567, 1587]]
    hit1 = 0
    CD = 3.0
    TP上限 = 3
    TP成长 = -0.05

    # 太/光加成
    def 等效百分比(self, 武器类型):
        if 武器类型 == '光剑' or '太刀':
            self.hit0 = 0
            self.hit1 = 5
            self.hit1 = self.hit1 + self.TP等级
        else:
            self.hit0 = 3
            self.hit1 = 0
            self.hit0 = self.hit0 + self.TP等级
        return super().等效百分比(武器类型)


class 技能13(主动技能):
    名称 = '暗劲爆发'
    类型 = '物理'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 冲击波物理攻击力：<data0>%
    data0 = [int(i*1.101) for i in [0, 434, 478, 522, 566, 610, 654, 698, 742, 786, 831, 875, 919, 963, 1007, 1051, 1095, 1139, 1183, 1227, 1271, 1315, 1359, 1403, 1447, 1491, 1535, 1579, 1623, 1667, 1712, 1756, 1800, 1844,
                                    1888, 1932, 1976, 2020, 2064, 2108, 2153, 2197, 2240, 2284, 2328, 2372, 2416, 2460, 2504, 2548, 2592, 2637, 2681, 2725, 2769, 2813, 2857, 2901, 2945, 2989, 3033, 3078, 3122, 3166, 3209, 3253, 3297, 3341, 3385, 3429, 3473]]
    hit0 = 1
    # 爆炸物理攻击力：<data1>%
    data1 = [int(i*1.101) for i in [0, 479, 527, 575, 624, 673, 721, 770, 818, 866, 916, 965, 1013, 1062, 1110, 1159, 1208, 1256, 1304, 1352, 1402, 1450, 1498, 1547, 1595, 1644, 1694, 1742, 1790, 1839, 1888, 1936, 1985, 2033,
                                    2081, 2130, 2179, 2227, 2275, 2324, 2373, 2422, 2471, 2519, 2567, 2617, 2665, 2713, 2762, 2810, 2859, 2907, 2956, 3004, 3052, 3102, 3150, 3199, 3248, 3297, 3345, 3394, 3442, 3490, 3540, 3588, 3636, 3684, 3733, 3782, 3830]]
    hit1 = 8
    CD = 15.0
    TP成长 = 0.1
    TP上限 = 7

    MP = [10, 450]
    无色消耗 = 1

    形态 = ["中心", "外围"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "中心":
            self.hit1 = 8
        if 形态 == "外围":
            self.hit1 = 4

    def 等效百分比(self):
        if self.TP等级 > 0:
            self.hit1 *= 1.2
        return super().等效百分比()


class 技能14(被动技能):
    名称 = '暗·短剑精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 14, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 480, 495, 510, 525,
             540, 555, 570, 585, 600, 615, 630, 645, 660, 675, 690, 705, 720, 735, 750, 765, 780, 795, 810, 825, 840, 855, 870, 885, 900, 915, 930, 945, 960, 975, 990, 1005, 1020, 1035, 1050]
    data1 = [0, 12, 26, 39, 51, 64, 77, 90, 103, 116, 129, 141, 154, 167, 180, 193, 206, 219, 231, 244, 257, 270, 283, 296, 309, 321, 334, 347, 360, 373, 386, 399, 411, 424, 437, 450,
             463, 476, 489, 501, 514, 527, 540, 553, 566, 579, 591, 604, 617, 630, 643, 656, 669, 681, 694, 707, 720, 733, 746, 759, 771, 784, 797, 810, 823, 836, 849, 861, 874, 887, 900]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.015, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 1000, 5)


class 技能15(被动技能):
    名称 = '暗·太刀精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312, 325, 338, 351, 364, 377, 390, 403, 416, 429, 442, 455,
             468, 481, 494, 507, 520, 533, 546, 559, 572, 585, 598, 611, 624, 637, 650, 663, 676, 689, 702, 715, 728, 741, 754, 767, 780, 793, 806, 819, 832, 845, 858, 871, 884, 897, 910]
    data1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
             432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 1000, 5)


class 技能16(被动技能):
    名称 = '暗·巨剑精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
             312, 324, 336, 348, 360, 372, 384, 396, 408, 420, 432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600]
    data1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
             312, 324, 336, 348, 360, 372, 384, 396, 408, 420, 432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 1000, 5)


class 技能17(被动技能):
    名称 = '暗·钝器精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
             432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]
    data1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
             432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 1000, 5)


class 技能18(被动技能):
    名称 = '暗·光剑精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 26, 40, 53, 66, 79, 92, 106, 119, 132, 145, 158, 172, 185, 198, 211, 224, 238, 251, 264, 277, 290, 304, 317, 330, 343,
             356, 370, 383, 396, 409, 422, 436, 449, 462, 475, 488, 502, 515, 528, 541, 554, 568, 581, 594, 607, 620, 634, 647, 660, 660]
    data1 = [0, 26, 40, 53, 66, 79, 92, 106, 119, 132, 145, 158, 172, 185, 198, 211, 224, 238, 251, 264, 277, 290, 304, 317, 330, 343,
             356, 370, 383, 396, 409, 422, 436, 449, 462, 475, 488, 502, 515, 528, 541, 554, 568, 581, 594, 607, 620, 634, 647, 660, 660]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 1000, 5)


class 技能19(主动技能):
    名称 = '邪影·波动剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法固伤'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [14, 450]
    # 气刃魔法攻击力
    data0 = [int(i*1.115) for i in [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
                                    100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]]
    hit0 = 1
    # 前进时的魔法攻击力：<data0>%
    data1 = [int(i*1.115) for i in [0, 872, 960, 1048, 1137, 1225, 1314, 1402, 1490, 1579, 1667, 1756, 1844, 1932, 2021, 2109, 2198, 2286, 2374, 2463, 2552, 2640, 2728, 2816, 2905, 2994, 3082, 3170, 3258, 3347, 3436, 3524, 3612, 3700,
                                    3788, 3878, 3966, 4054, 4142, 4230, 4320, 4408, 4496, 4584, 4673, 4762, 4850, 4938, 5026, 5115, 5204, 5292, 5380, 5468, 5557, 5646, 5734, 5822, 5910, 5999, 6088, 6176, 6264, 6353, 6441, 6530, 6618, 6706, 6795, 6883, 6972]]
    hit1 = 3
    # 爆炸魔法攻击力：<data1>%
    data2 = [int(i*1.115) for i in [0, 174, 192, 210, 227, 245, 263, 281, 299, 316, 334, 352, 370, 387, 404, 422, 440, 458, 476, 494, 511, 529, 547, 565, 582, 600, 617, 635, 653, 670, 688, 707, 725, 742, 759,
                                    777, 795, 813, 831, 847, 865, 883, 902, 920, 938, 954, 972, 990, 1008, 1026, 1043, 1061, 1078, 1096, 1115, 1132, 1150, 1168, 1185, 1203, 1220, 1238, 1256, 1274, 1292, 1308, 1327, 1345, 1363, 1381, 1398]]
    hit2 = 4
    CD = 7.0


class 技能20(主动技能):
    名称 = '暗魂之手'
    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [14, 450]
    # 物理攻击力：<data0>%
    data0 = [int(i*1.117) for i in [0, 2178, 2399, 2620, 2841, 3062, 3283, 3504, 3725, 3946, 4166, 4388, 4608, 4830, 5051, 5272, 5493, 5714, 5935, 6155, 6377, 6597, 6819, 7039, 7261, 7481, 7703, 7923, 8145, 8365, 8586, 8807, 9028, 9251, 9471,
                                    9693, 9913, 10135, 10355, 10576, 10797, 11018, 11239, 11460, 11681, 11902, 12123, 12344, 12565, 12786, 13006, 13228, 13448, 13670, 13890, 14112, 14333, 14554, 14775, 14995, 15217, 15437, 15659, 15879, 16101, 16321, 16543, 16763, 16985]]
    hit0 = 1
    # 喷发时物理攻击力：<data1>%
    data0 = [int(i*1.117) for i in [0, 1478, 1629, 1779, 1928, 2078, 2228, 2378, 2528, 2678, 2829, 2979, 3129, 3279, 3429, 3578, 3729, 3879, 4029, 4179, 4328, 4478, 4628, 4780, 4930, 5079, 5229, 5379, 5529, 5679, 5829, 5979, 6129,
                                    6279, 6429, 6578, 6729, 6880, 7030, 7180, 7329, 7479, 7629, 7779, 7930, 8079, 8229, 8379, 8529, 8680, 8829, 8980, 9130, 9280, 9430, 9579, 9729, 9879, 10030, 10180, 10329, 10479, 10630, 10780, 10931, 11081, 11230, 11380, 11530]]
    hit0 = 1
    CD = 6.0
    TP成长 = 0.1
    TP上限 = 7


class 技能21(主动技能):
    名称 = '暗影鞭'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    MP = [14, 450]
    # 第1击魔法攻击力：<data0>%
    data0 = [int(i*1.112) for i in [0, 834, 967, 1099, 1233, 1366, 1498, 1632, 1765, 1897, 2031, 2164, 2296, 2430, 2563, 2695, 2829, 2961, 3094, 3228, 3360, 3493, 3628, 3760, 3893, 4027, 4159, 4292, 4425, 4558, 4691, 4824, 4957, 5090,
                                    5223, 5356, 5489, 5622, 5755, 5887, 6021, 6154, 6286, 6420, 6553, 6685, 6819, 6952, 7084, 7218, 7350, 7483, 7617, 7749, 7883, 8017, 8149, 8282, 8416, 8548, 8681, 8814, 8947, 9080, 9213, 9346, 9479, 9612, 9745, 9878, 10011]]
    hit0 = 1
    # 第2击魔法攻击力：<data1>%
    data0 = [int(i*1.112) for i in [0, 1946, 2256, 2566, 2878, 3188, 3499, 3808, 4119, 4429, 4740, 5049, 5360, 5670, 5981, 6291, 6600, 6911, 7222, 7533, 7842, 8153, 8463, 8774, 9084, 9394, 9704, 10015, 10325, 10635, 10945, 11257, 11567, 11878, 12187, 12498,
                                    12808, 13119, 13428, 13739, 14049, 14360, 14670, 14980, 15290, 15602, 15912, 16223, 16532, 16843, 17153, 17464, 17773, 18084, 18394, 18704, 19014, 19324, 19636, 19946, 20257, 20566, 20877, 21187, 21498, 21807, 22118, 22428, 22739, 23049, 23359]]
    hit0 = 1
    CD = 8.4
    TP成长 = 0.10
    TP上限 = 7


class 技能22(主动技能):
    名称 = '瞬影斩'
    类型 = '物理'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [50, 880]
    # 物理攻击力：<data0>%
    data0 = [int(i*1.112) for i in [0, 1594, 1757, 1918, 2080, 2243, 2403, 2565, 2728, 2890, 3051, 3213, 3375, 3536, 3699, 3861, 4022, 4184, 4346, 4508, 4670, 4831, 4993, 5156, 5317, 5480, 5641, 5802, 5965, 6127, 6288, 6450, 6612, 6774, 6936,
                                    7098, 7259, 7421, 7583, 7745, 7908, 8068, 8230, 8393, 8554, 8716, 8878, 9039, 9201, 9364, 9526, 9686, 9849, 10011, 10172, 10335, 10496, 10658, 10820, 10982, 11144, 11305, 11467, 11629, 11792, 11952, 12114, 12277, 12438, 12600, 12762]]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7
    CD = 5


class 技能23(主动技能):
    名称 = '灭魂封魔斩'
    类型 = '物理'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 物理攻击力：<data0>%
    # 把前方敌人吸附到自身的近身处， 并对其进行无属性斩击。
    # 吸附的敌人越多， 斩击时造成的伤害就越大。
    data0 = [int(i*1.101) for i in [0, 4645, 5117, 5587, 6060, 6530, 7001, 7473, 7943, 8416, 8886, 9358, 9829, 10301, 10772, 11243, 11714, 12186, 12657, 13128, 13600, 14071, 14543, 15013, 15484, 15956, 16427, 16898, 17370, 17841, 18313, 18783, 19255, 19726, 20198,
                                    20668, 21141, 21611, 22084, 22554, 23024, 23497, 23967, 24439, 24910, 25382, 25852, 26325, 26795, 27267, 27738, 28209, 28681, 29152, 29623, 30095, 30566, 31037, 31508, 31979, 32451, 32922, 33393, 33865, 34336, 34808, 35279, 35749, 36222, 36692, 37164]]
    hit0 = 1
    # 若吸附的是领主、 稀有、 精英、 深渊、 人形怪敌人， 则敌人受到的伤害会更大
    倍率 = 1.24  # 待测试
    CD = 30
    TP成长 = 0.10
    TP上限 = 7

    MP = [20, 500]
    无色消耗 = 1


class 技能24(主动技能):
    名称 = '冥魂珠'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [20, 350]
    # 魔法攻击力：<data0>%
    data0 = [int(i*1.108) for i in [0, 360, 397, 434, 469, 506, 544, 580, 616, 653, 689, 727, 763, 799, 836, 873, 908, 946, 983, 1019, 1055, 1092, 1129, 1166, 1202, 1238, 1275, 1313, 1348, 1385, 1421, 1457, 1494, 1531, 1568,
                                    1604, 1640, 1677, 1715, 1750, 1787, 1824, 1860, 1897, 1934, 1970, 2007, 2043, 2079, 2117, 2154, 2189, 2226, 2263, 2300, 2336, 2373, 2409, 2445, 2483, 2519, 2556, 2592, 2628, 2665, 2703, 2738, 2775, 2812, 2848, 2885]]
    hit0 = 13
    # 冥魂珠爆炸魔法攻击力：<data2>%
    data1 = [int(i*1.108) for i in [0, 820, 903, 987, 1070, 1153, 1236, 1320, 1403, 1486, 1569, 1653, 1736, 1820, 1902, 1986, 2069, 2153, 2234, 2318, 2401, 2485, 2567, 2651, 2734, 2818, 2901, 2984, 3067, 3151, 3234, 3317, 3400, 3484,
                                    3567, 3651, 3733, 3817, 3900, 3984, 4066, 4150, 4233, 4317, 4400, 4482, 4565, 4649, 4732, 4815, 4898, 4982, 5065, 5149, 5231, 5315, 5398, 5482, 5564, 5648, 5732, 5815, 5899, 5981, 6065, 6148, 6232, 6314, 6398, 6481, 6565]]
    hit1 = 1
    CD = 10.5
    # Tp每级增加攻击次数4
    TP成长 = 0
    TP上限 = 7

    def 等效百分比(self, 武器类型):
        self.hit0 = self.hit0 + 3 * self.TP等级
        return super().等效百分比(武器类型)


class 技能25(主动技能):
    名称 = '暗影升龙击'
    类型 = '物理'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [15, 450]
    # 冲撞物理攻击力：<data0>%
    data0 = [int(i*1.108) for i in [0, 992, 1093, 1193, 1295, 1394, 1495, 1596, 1697, 1798, 1898, 1999, 2099, 2201, 2301, 2401, 2503, 2603, 2704, 2805, 2905, 3005, 3107, 3207, 3308, 3409, 3509, 3610, 3711, 3812, 3911,
                                    4013, 4114, 4214, 4316, 4415, 4516, 4617, 4718, 4818, 4919, 5020, 5120, 5222, 5321, 5422, 5524, 5624, 5725, 5825, 5926, 6026, 6128, 6228, 6328, 6430, 6530, 6631, 6732, 6832, 6932, 7034, 7135, 7235, 7336, 7436]]
    hit0 = 1
    # 上斩物理攻击力：<data1>%
    data1 = [int(i*1.108) for i in [0, 1493, 1644, 1796, 1947, 2098, 2250, 2401, 2554, 2705, 2856, 3007, 3158, 3311, 3462, 3613, 3765, 3917, 4069, 4219, 4370, 4522, 4674, 4825, 4977, 5128, 5279, 5431, 5582, 5734, 5885, 6038,
                                    6189, 6340, 6491, 6642, 6795, 6946, 7097, 7249, 7400, 7553, 7703, 7854, 8006, 8157, 8310, 8461, 8612, 8763, 8915, 9067, 9218, 9369, 9521, 9673, 9825, 9975, 10126, 10278, 10430, 10581, 10733, 10884, 11037, 11187]]
    hit1 = 1
    # 下捶物理攻击力：<data2>% ~ <data3>%
    data2 = [int(i*1.108) for i in [0, 1070, 1177, 1285, 1394, 1503, 1612, 1720, 1829, 1937, 2045, 2155, 2263, 2372, 2479, 2588, 2696, 2805, 2914, 3022, 3131, 3239, 3347, 3457, 3565, 3674, 3782, 3890, 3998, 4107, 4216,
                                    4324, 4433, 4541, 4650, 4759, 4867, 4976, 5084, 5193, 5300, 5409, 5518, 5626, 5735, 5843, 5952, 6061, 6169, 6278, 6386, 6495, 6602, 6711, 6820, 6928, 7037, 7145, 7254, 7363, 7471, 7580, 7688, 7797, 7905, 8014]]
    hit2 = 1
    # 下捶冲击波物理攻击力：<data4>%
    data3 = [int(i*1.108) for i in [0, 715, 789, 860, 932, 1006, 1078, 1151, 1224, 1297, 1368, 1441, 1514, 1587, 1659, 1733, 1805, 1877, 1949, 2022, 2095, 2167, 2241, 2313, 2386, 2457, 2531, 2603, 2675, 2749, 2821,
                                    2894, 2966, 3039, 3111, 3184, 3257, 3330, 3402, 3476, 3547, 3619, 3692, 3765, 3838, 3910, 3984, 4055, 4128, 4201, 4274, 4346, 4418, 4492, 4563, 4636, 4709, 4782, 4854, 4927, 5000, 5072, 5144, 5217, 5290, 5362]]
    hit3 = 1
    CD = 10


class 技能26(主动技能):
    名称 = '冥魂之陨'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 魔法攻击力：<data0>%
    data0 = [int(i*1.054*1.101) for i in [0, 317, 351, 382, 415, 447, 480, 511, 545, 576, 609, 641, 674, 706, 737, 771, 802, 835, 867, 900, 931, 965, 996, 1029, 1061, 1094, 1126, 1158, 1191, 1222, 1255, 1287, 1320, 1351, 1384,
                                          1416, 1449, 1481, 1514, 1546, 1578, 1611, 1643, 1675, 1707, 1740, 1771, 1804, 1836, 1869, 1901, 1934, 1966, 1998, 2031, 2063, 2095, 2128, 2160, 2191, 2224, 2256, 2289, 2321, 2354, 2386, 2418, 2451, 2483, 2515, 2548]]
    hit0 = 24
    CD = 21
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [40, 886]
    无色消耗 = 1

    def 装备护石(self):
        self.power0 = 1.24
        self.CDR *= 0.9


class 技能27(主动技能):
    名称 = '破魂之刃'
    类型 = '物理'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [15, 450]
    # 刺击物理攻击力：<data0>%
    data0 = [int(i*1.053*1.101) for i in [0, 1305, 1437, 1570, 1702, 1835, 1968, 2100, 2232, 2365, 2497, 2630, 2763, 2895, 3027, 3159, 3292, 3425, 3557, 3690, 3822, 3954, 4087, 4220, 4352, 4485, 4617, 4749, 4881, 5015, 5147, 5279,
                                          5412, 5544, 5676, 5811, 5943, 6075, 6208, 6340, 6472, 6606, 6738, 6870, 7002, 7135, 7267, 7400, 7533, 7665, 7797, 7930, 8062, 8195, 8328, 8460, 8592, 8724, 8857, 8989, 9122, 9255, 9387, 9519, 9652, 9784, 9917, 10050, 10182]]
    hit0 = 1
    # 爆炸物理攻击力：<data1>%
    data1 = [int(i*1.053*1.101) for i in [0, 6599, 7270, 7939, 8609, 9279, 9948, 10619, 11288, 11956, 12627, 13296, 13966, 14636, 15305, 15976, 16645, 17313, 17984, 18653, 19323, 19993, 20662, 21332, 22002, 22671, 23342, 24010, 24680, 25350, 26019, 26689, 27359,
                                          28028, 28699, 29367, 30037, 30707, 31376, 32046, 32716, 33385, 34055, 34725, 35394, 36064, 36733, 37403, 38073, 38742, 39412, 40082, 40752, 41421, 42090, 42760, 43430, 44099, 44769, 45439, 46109, 46778, 47447, 48117, 48787, 49456, 50126, 50796, 51466]]
    hit1 = 1
    CD = 20
    TP成长 = 0.1
    TP上限 = 5

    MP = [15, 540]
    无色消耗 = 1


class 技能28(主动技能):
    名称 = '凝魂波动阵'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 捶击物理攻击力：<data0>%
    data0 = [int(i*1.05*1.101) for i in [0, 764, 841, 920, 996, 1075, 1152, 1230, 1307, 1385, 1462, 1540, 1617, 1696, 1772, 1850, 1928, 2006, 2082, 2161, 2239, 2315, 2394, 2471, 2549, 2626, 2704, 2781, 2859, 2936, 3015, 3091, 3169,
                                         3247, 3324, 3402, 3480, 3556, 3635, 3712, 3789, 3867, 3945, 4023, 4100, 4177, 4256, 4333, 4410, 4489, 4565, 4643, 4721, 4799, 4876, 4954, 5031, 5109, 5186, 5264, 5341, 5419, 5496, 5574, 5651, 5730, 5807, 5884, 5962, 6040, 6116]]
    hit0 = 1
    # 多段魔法攻击力：<data1>%
    data1 = [int(i*1.05*1.101) for i in [0, 764, 841, 920, 996, 1075, 1152, 1230, 1307, 1385, 1462, 1540, 1617, 1696, 1772, 1850, 1928, 2006, 2082, 2161, 2239, 2315, 2394, 2471, 2549, 2626, 2704, 2781, 2859, 2936, 3015, 3091, 3169,
                                         3247, 3324, 3402, 3480, 3556, 3635, 3712, 3789, 3867, 3945, 4023, 4100, 4177, 4256, 4333, 4410, 4489, 4565, 4643, 4721, 4799, 4876, 4954, 5031, 5109, 5186, 5264, 5341, 5419, 5496, 5574, 5651, 5730, 5807, 5884, 5962, 6040, 6116]]
    hit1 = 7
    # 波动阵解除时的魔法攻击力：<data3>%
    data2 = [int(i*1.05*1.101) for i in [0, 1537, 1693, 1849, 2004, 2161, 2316, 2473, 2628, 2785, 2940, 3096, 3253, 3409, 3565, 3720, 3877, 4032, 4188, 4344, 4500, 4656, 4812, 4968, 5124, 5279, 5437, 5592, 5749, 5904, 6060, 6216, 6371, 6528,
                                         6683, 6840, 6995, 7152, 7307, 7464, 7620, 7776, 7932, 8088, 8244, 8399, 8555, 8711, 8867, 9023, 9179, 9335, 9491, 9647, 9804, 9959, 10116, 10271, 10427, 10583, 10738, 10895, 11050, 11207, 11362, 11519, 11674, 11831, 11987, 12143, 12299]]
    hit2 = 1
    # 扩散魔法攻击力：<data4>%，待定 原来没有
    data3 = [int(i*1.05*1.101) for i in [0, 301, 332, 362, 394, 423, 455, 485, 516, 546, 576, 608, 638, 669, 699, 730, 761, 792, 821, 853, 883, 914, 945, 974, 1006, 1036, 1067, 1097, 1128, 1159, 1190, 1219, 1251, 1281, 1313,
                                         1343, 1372, 1404, 1434, 1465, 1495, 1526, 1557, 1588, 1618, 1649, 1679, 1710, 1741, 1770, 1802, 1832, 1864, 1893, 1924, 1955, 1986, 2016, 2046, 2077, 2108, 2139, 2168, 2200, 2230, 2262, 2292, 2322, 2353, 2384, 2415]]
    hit3 = 1
    CD = 21
    TP成长 = 0.1
    TP上限 = 5

    MP = [45, 1000]
    无色消耗 = 1


class 技能29(主动技能):
    名称 = '破魂斩'
    类型 = '物理'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 物理攻击力：<data0>%
    data0 = [int(i*1.053*1.109) for i in [0, 6223, 6855, 7488, 8119, 8751, 9381, 10013, 10645, 11276, 11907, 12539, 13170, 13802, 14434, 15064, 15696, 16329, 16960, 17591, 18222, 18854, 19486, 20117, 20748, 21380, 22011, 22643, 23274, 23905, 24537, 25169, 25801, 26432,
                                          27063, 27695, 28327, 28957, 29589, 30221, 30852, 31484, 32114, 32746, 33378, 34010, 34641, 35273, 35904, 36536, 37168, 37798, 38430, 39062, 39693, 40324, 40955, 41587, 42219, 42851, 43482, 44114, 44745, 45377, 46009, 46639, 47271, 47902, 48534, 49165, 49796]]
    hit0 = 1
    CD = 15
    TP成长 = 0.10
    TP上限 = 5

    MP = [25, 600]
    无色消耗 = 1


class 技能30(主动技能):
    名称 = '冥炎破空斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 冥炎剑右斩击魔法攻击力：<data0>%
    data0 = [int(i*1.053*1.10) for i in [1427, 1571, 1717, 1861, 2006, 2150, 2295, 2440, 2584, 2730, 2874, 3019, 3165, 3309, 3453, 3598, 3743, 3887, 4033, 4177, 4322, 4468, 4612, 4757, 4900, 5046, 5190, 5335, 5481, 5625, 5770, 5915, 6060,
                                         6203, 6349, 6494, 6638, 6784, 6928, 7073, 7218, 7363, 7506, 7651, 7797, 7941, 8086, 8231, 8376, 8520, 8666, 8811, 8954, 9100, 9244, 9389, 9534, 9679, 9824, 9968, 10114, 10257, 10402, 10547, 10692, 10836, 10982, 11127, 11271, 11417]]
    hit0 = 2
    # 冥炎剑左斩击魔法攻击力：<data1>%
    data1 = [int(i*1.053*1.10) for i in [2144, 2361, 2580, 2797, 3015, 3233, 3449, 3667, 3885, 4102, 4321, 4538, 4755, 4974, 5190, 5408, 5626, 5843, 6061, 6279, 6496, 6715, 6931, 7148, 7367, 7584, 7802, 8020, 8237, 8454, 8672, 8889, 9107, 9325, 9542,
                                         9761, 9978, 10194, 10413, 10630, 10848, 11066, 11283, 11501, 11718, 11935, 12154, 12371, 12588, 12807, 13024, 13242, 13459, 13676, 13894, 14112, 14329, 14548, 14765, 14981, 15200, 15417, 15635, 15853, 16070, 16288, 16506, 16722, 16941, 17158]]
    hit1 = 2
    # 冥炎剑上斩击魔法攻击力：<data2>%
    data2 = [int(i*1.053*1.10) for i in [4289, 4724, 5160, 5595, 6029, 6465, 6901, 7335, 7770, 8206, 8642, 9076, 9511, 9947, 10381, 10817, 11252, 11688, 12122, 12558, 12993, 13428, 13863, 14298, 14734, 15168, 15604, 16039, 16475, 16909, 17345, 17780, 18214, 18650,
                                         19086, 19521, 19955, 20391, 20827, 21261, 21696, 22132, 22567, 23001, 23437, 23873, 24308, 24742, 25178, 25614, 26047, 26483, 26919, 27355, 27788, 28224, 28660, 29096, 29529, 29965, 30401, 30834, 31270, 31706, 32142, 32575, 33011, 33447, 33882, 34316]]
    hit2 = 2
    # 冥炎攻击力：<data3>%
    data3 = [int(i*1.053*1.10) for i in [144, 158, 172, 186, 202, 216, 230, 245, 259, 274, 289, 303, 317, 332, 348, 361, 376, 391, 404, 420, 435, 448, 463, 479, 492, 507, 522, 536, 551, 566, 580, 594, 609,
                                         624, 638, 653, 667, 681, 697, 711, 726, 740, 754, 770, 784, 798, 813, 828, 842, 857, 872, 885, 901, 916, 929, 944, 958, 973, 988, 1002, 1016, 1031, 1046, 1061, 1075, 1089, 1105, 1119, 1133, 1148]]
    hit3 = 8
    CD = 47.25
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [100, 1260]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 4
        self.hit1 = 4
        self.power0 = 0.5
        self.power1 = 0.5
        self.power2 = 1.34
        self.power3 = 3.99


class 技能31(主动技能):
    名称 = '禁魂斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 魔法攻击力：<data0>%
    data0 = [int(i*1.05*1.101) for i in [0, 7988, 8800, 9611, 10421, 11231, 12041, 12853, 13664, 14473, 15284, 16094, 16906, 17716, 18526, 19337, 20147, 20959, 21769, 22579, 23390, 24200, 25011, 25822, 26632, 27443, 28252, 29064, 29875, 30685, 31495, 32305, 33117, 33928,
                                         34737, 35548, 36358, 37170, 37980, 38790, 39601, 40411, 41223, 42033, 42843, 43654, 44464, 45275, 46086, 46896, 47707, 48516, 49328, 50139, 50949, 51759, 52569, 53381, 54192, 55001, 55812, 56622, 57434, 58244, 59054, 59865, 60675, 61487, 62297, 63107, 63918]]
    hit0 = 1
    CD = 21
    TP成长 = 0
    TP上限 = 5

    MP = [20, 800]
    无色消耗 = 1


class 技能32(主动技能):
    名称 = '魔狱裂魂斩'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 捶击时物理攻击力：<data0>%
    data0 = [int(i*1.053*1.109) for i in [0, 416, 458, 500, 543, 585, 626, 669, 711, 753, 795, 838, 880, 922, 965, 1007, 1049, 1090, 1133, 1175, 1217, 1259, 1302, 1344, 1386, 1429, 1471, 1513, 1555, 1597, 1639, 1681, 1724, 1766,
                                          1808, 1850, 1893, 1935, 1977, 2020, 2062, 2103, 2145, 2188, 2230, 2272, 2315, 2357, 2399, 2441, 2484, 2526, 2567, 2609, 2652, 2694, 2736, 2779, 2821, 2863, 2905, 2948, 2990, 3032, 3074, 3116, 3158, 3200, 3243, 3285, 3327]]
    hit0 = 1
    # 冲击波物理攻击力：<data1>%
    data1 = [int(i*1.053*1.109) for i in [0, 2911, 3206, 3502, 3797, 4093, 4388, 4683, 4979, 5274, 5570, 5864, 6159, 6455, 6750, 7047, 7342, 7637, 7933, 8228, 8524, 8819, 9114, 9409, 9704, 10000, 10295, 10590, 10886, 11181, 11478, 11773, 12068, 12364, 12658,
                                          12953, 13249, 13544, 13840, 14135, 14430, 14726, 15021, 15317, 15612, 15906, 16203, 16498, 16794, 17089, 17384, 17680, 17975, 18271, 18566, 18861, 19157, 19451, 19747, 20042, 20337, 20634, 20929, 21225, 21520, 21815, 22111, 22406, 22701, 22996, 23291]]
    hit1 = 1
    # 黑暗气息攻击力：<data2>%
    data2 = [int(i*1.053*1.109) for i in [0, 2040, 2246, 2453, 2661, 2868, 3073, 3281, 3488, 3695, 3902, 4109, 4317, 4522, 4730, 4937, 5143, 5351, 5558, 5763, 5971, 6178, 6386, 6592, 6799, 7007, 7212, 7420, 7627, 7833, 8041, 8248, 8455, 8661, 8868,
                                          9076, 9282, 9489, 9697, 9904, 10110, 10317, 10524, 10731, 10938, 11145, 11352, 11558, 11766, 11973, 12179, 12387, 12594, 12801, 13007, 13214, 13422, 13628, 13835, 14043, 14249, 14456, 14663, 14869, 15077, 15284, 15492, 15698, 15904, 16112, 16318]]
    hit2 = 6
    CD = 40
    TP成长 = 0.10
    TP上限 = 5

    MP = [40, 1000]
    无色消耗 = 12


class 技能33(主动技能):
    名称 = '黑暗明王阵'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 波动旋转魔法伤害：<data0>%
    data0 = [int(i*1.052*1.105) for i in [0, 2161, 2380, 2600, 2819, 3032, 3259, 3473, 3691, 3910, 4133, 4352, 4570, 4791, 5007, 5228, 5446, 5668, 5883, 6106, 6323, 6543, 6765, 6984, 7203, 7416, 7642, 7856, 8076, 8295, 8514, 8734, 8954, 9174, 9389, 9614,
                                          9829, 10049, 10266, 10490, 10709, 10923, 11148, 11362, 11582, 11801, 12021, 12238, 12461, 12677, 12897, 13118, 13336, 13556, 13777, 13991, 14212, 14432, 14653, 14871, 15090, 15311, 15524, 15745, 15964, 16185, 16404, 16623, 16843, 17061, 17280]]
    hit0 = 4
    # 爆炸魔法伤害：<data1>%
    data1 = [int(i*1.052*1.105) for i in [0, 5013, 5524, 6027, 6533, 7065, 7548, 8077, 8589, 9093, 9592, 10099, 10616, 11113, 11635, 12137, 12649, 13151, 13673, 14172, 14687, 15196, 15692, 16202, 16710, 17238, 17724, 18252, 18760, 19269, 19774, 20281, 20789, 21296,
                                          21817, 22305, 22828, 23336, 23856, 24345, 24854, 25376, 25869, 26396, 26899, 27410, 27910, 28431, 28926, 29445, 29953, 30456, 30967, 31472, 31979, 32504, 33007, 33514, 34015, 34525, 35033, 35537, 36068, 36570, 37079, 37585, 38094, 38601, 39103, 39617, 40129]]
    hit1 = 1
    CD = 47.25
    TP成长 = 0.10
    TP上限 = 5

    MP = [70, 1120]
    无色消耗 = 2


class 技能34(主动技能):
    名称 = '魔影剑舞'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 斩击物理攻击力：<data0>%
    data0 = [int(i*1.054*1.105) for i in [0, 794, 876, 952, 1034, 1115, 1196, 1276, 1357, 1437, 1518, 1596, 1677, 1759, 1838, 1918, 2000, 2080, 2162, 2242, 2322, 2401, 2483, 2563, 2643, 2725, 2805, 2884, 2966, 3045, 3126, 3207, 3287,
                                          3367, 3446, 3529, 3609, 3688, 3770, 3852, 3929, 4011, 4092, 4171, 4253, 4333, 4414, 4494, 4574, 4656, 4733, 4812, 4894, 4974, 5053, 5133, 5215, 5294, 5375, 5456, 5536, 5616, 5695, 5775, 5857, 5937, 6017, 6098, 6177, 6257, 6337]]
    hit0 = 3
    # 剑气物理攻击力：<data1>%
    data1 = [int(i*1.054*1.105) for i in [0, 1902, 2093, 2292, 2483, 2678, 2867, 3062, 3258, 3448, 3635, 3837, 4028, 4220, 4417, 4607, 4799, 4988, 5185, 5378, 5569, 5771, 5957, 6148, 6344, 6539, 6727, 6923, 7115, 7313, 7503, 7693, 7891, 8080, 8277,
                                          8464, 8659, 8857, 9046, 9235, 9436, 9627, 9820, 10015, 10206, 10399, 10589, 10786, 10977, 11166, 11368, 11570, 11760, 11956, 12152, 12343, 12539, 12734, 12924, 13118, 13315, 13504, 13699, 13895, 14087, 14282, 14477, 14667, 14864, 15059, 15250]]
    hit1 = 3
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [50, 1080]
    无色消耗 = 2

    def 装备护石(self):
        self.power0 = 0.5
        self.hit1 = 1
        self.power1 = 1*0.19+1*1.3+6*0.91+1*1.63


class 技能35(被动技能):
    名称 = '时间停滞'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 <= 15:
            return round(1.045 + 0.01 * self.等级, 5)
        else:
            return round(0.97 + 0.015 * self.等级, 5)


class 技能36(主动技能):
    名称 = '幽魂剑'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    data0 = [int(i*1.052*1.105) for i in [0, 227, 264, 300, 336, 373, 410, 445, 482, 517, 553, 590, 626, 663, 699, 735, 772, 809, 844, 881, 918, 953, 989, 1026, 1062, 1098, 1134, 1171, 1208, 1243, 1280, 1317, 1352, 1389, 1426,
                                          1462, 1497, 1534, 1570, 1607, 1643, 1679, 1716, 1751, 1788, 1825, 1861, 1897, 1934, 1969, 2006, 2042, 2078, 2115, 2151, 2187, 2224, 2261, 2296, 2333, 2369, 2406, 2442, 2477, 2514, 2550, 2586, 2623, 2660, 2695, 2732]]
    hit0 = 33
    data1 = [int(i*1.052*1.105) for i in [0, 7514, 8712, 9909, 11108, 12305, 13503, 14702, 15899, 17097, 18295, 19493, 20690, 21889, 23087, 24284, 25484, 26681, 27879, 29077, 30275, 31473, 32671, 33869, 35066, 36265, 37462, 38660, 39859, 41056, 42254, 43452, 44650, 45847,
                                          47046, 48243, 49441, 50640, 51837, 53036, 54234, 55432, 56629, 57828, 59026, 60223, 61422, 62619, 63817, 65015, 66213, 67411, 68609, 69807, 71004, 72203, 73400, 74598, 75797, 76994, 78192, 79389, 80589, 81786, 82984, 84182, 85380, 86578, 87776, 88974, 90171]]
    hit1 = 1
    CD = 45
    是否有护石 = 1

    MP = [400, 3360]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 6
        self.power1 = 2.27
        self.CDR *= 0.89


class 技能37(主动技能):
    名称 = '暗炎冥魂波'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    data0 = [int(i*1.05*1.108) for i in [0, 3369, 3907, 4444, 4981, 5519, 6055, 6593, 7131, 7667, 8205, 8742, 9279, 9816, 10354, 10891, 11428, 11966, 12502, 13040, 13578, 14114, 14652, 15189, 15726, 16263, 16801, 17338, 17875, 18412, 18949, 19487, 20024, 20561,
                                         21099, 21635, 22173, 22710, 23247, 23785, 24322, 24859, 25396, 25934, 26471, 27008, 27546, 28082, 28620, 29157, 29694, 30232, 30769, 31306, 31843, 32381, 32918, 33455, 33993, 34529, 35067, 35604, 36141, 36679, 37216, 37753, 38290, 38828, 39365, 39902, 40440]]
    hit0 = 5
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    MP = [400, 1120]
    无色消耗 = 1

    def 装备护石(self):
        self.倍率 *= 1.29
        self.CDR *= 0.9


class 技能38(主动技能):
    名称 = '斩龙破'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.051*1.105) for i in [0, 1916, 2111, 2306, 2499, 2694, 2889, 3083, 3278, 3471, 3666, 3861, 4055, 4250, 4445, 4638, 4833, 5027, 5222, 5417, 5610, 5805, 6000, 6194, 6389, 6584, 6777, 6972, 7166, 7362, 7556, 7749, 7944, 8139, 8333,
                                          8528, 8722, 8917, 9111, 9305, 9500, 9695, 9888, 10083, 10277, 10473, 10667, 10861, 11055, 11250, 11444, 11639, 11834, 12029, 12222, 12416, 12612, 12806, 13000, 13194, 13389, 13584, 13778, 13972, 14168, 14361, 14555, 14750, 14945, 15140, 15333]]
    hit0 = 1
    data1 = [int(i*1.051*1.105) for i in [0, 1916, 2111, 2306, 2499, 2694, 2889, 3083, 3278, 3471, 3666, 3861, 4055, 4250, 4445, 4638, 4833, 5027, 5222, 5417, 5610, 5805, 6000, 6194, 6389, 6584, 6777, 6972, 7166, 7362, 7556, 7749, 7944, 8139, 8333,
                                          8528, 8722, 8917, 9111, 9305, 9500, 9695, 9888, 10083, 10277, 10473, 10667, 10861, 11055, 11250, 11444, 11639, 11834, 12029, 12222, 12416, 12612, 12806, 13000, 13194, 13389, 13584, 13778, 13972, 14168, 14361, 14555, 14750, 14945, 15140, 15333]]
    hit1 = 1
    data2 = [int(i*1.051*1.105) for i in [0, 17464, 19235, 21007, 22779, 24550, 26322, 28094, 29864, 31637, 33408, 35179, 36952, 38723, 40495, 42267, 44038, 45810, 47582, 49353, 51126, 52897, 54668, 56441, 58212, 59983, 61756, 63527, 65298, 67071, 68842, 70614, 72386, 74157, 75930,
                                          77701, 79472, 81245, 83016, 84788, 86560, 88331, 90103, 91875, 93646, 95417, 97189, 98960, 100732, 102504, 104276, 106047, 107819, 109591, 111362, 113134, 114906, 116678, 118449, 120221, 121993, 123765, 125536, 127308, 129080, 130851, 132623, 134395, 136166, 137939, 139710]]
    hit2 = 1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [580, 4500]
    无色消耗 = 3

    def 装备护石(self):
        self.hit0 = 0
        self.hit1 = 0
        self.hit2 = 6
        self.power2 = 0.29
        self.CDR *= 0.9


class 技能39(被动技能):
    名称 = '次元融合'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['无']
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        return '力量/智力+' + str(int(self.力智倍率() * 100 - 100)) + '%'

    def 力智倍率(self):
        return round(1 + 0.02 * self.等级, 5)


class 技能40(被动技能):
    名称 = '自我觉醒'
    所在等级 = 75
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['所有']

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)


class 技能41(主动技能):
    名称 = '邪影升龙斩'
    武器惩罚类型 = '魔法固伤'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.054*1.101) for i in [0, 48051, 52926, 57800, 62676, 67552, 72426, 77301, 82176, 87050, 91925, 96801, 101675, 106550, 111424, 116299, 121174, 126049, 130925, 135800, 140674, 145549, 150424, 155298, 160173, 165047, 169923, 174798, 179672, 184548, 189423, 194297, 199172, 204048,
                                          208922, 213797, 218671, 223546, 228421, 233295, 238170, 243047, 247921, 252796, 257671, 262545, 267420, 272294, 277170, 282045, 286919, 291794, 296669, 301543, 306419, 311295, 316169, 321044, 325918, 330793, 335668, 340542, 345417, 350293, 355167, 360042, 364918, 369792, 374667, 379541, 384417]]
    hit0 = 1
    CD = 50
    是否有护石 = 1

    MP = [800, 6000]
    无色消耗 = 5

    def 装备护石(self):
        self.倍率 *= 1.32


class 技能42(主动技能):
    名称 = '超时空碎裂'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.052*1.103) for i in [0, 2782, 3426, 4073, 4717, 5362, 6007, 6652, 7296, 7943, 8587, 9233, 9878, 10522, 11166, 11813, 12457, 13101, 13746, 14390, 15037, 15683, 16327, 16971, 17618, 18262, 18906, 19551, 20198, 20842, 21487, 22131, 22776, 23423,
                                          24067, 24711, 25359, 26003, 26647, 27292, 27937, 28581, 29227, 29871, 30519, 31163, 31808, 32452, 33098, 33742, 34386, 35032, 35676, 36323, 36967, 37611, 38258, 38903, 39547, 40192, 40836, 41483, 42128, 42772, 43416, 44063, 44707, 45351, 45997, 46644, 47288]]
    hit0 = 19
    data1 = [int(i*1.052*1.103) for i in [0, 52850, 65104, 77360, 89615, 101871, 114125, 126380, 138634, 150889, 163145, 175403, 187655, 199911, 212167, 224421, 236677, 248932, 261184, 273440, 285697, 297951, 310206, 322462, 334718, 346972, 359227, 371484, 383738, 395993, 408247, 420501, 432757, 445012,
                                          457270, 469522, 481779, 494035, 506289, 518543, 530798, 543052, 555310, 567564, 579818, 592074, 604329, 616586, 628839, 641096, 653350, 665604, 677860, 690115, 702369, 714625, 726880, 739137, 751392, 763646, 775903, 788154, 800411, 812666, 824919, 837177, 849431, 861686, 873942, 886197, 898453]]
    hit1 = 1
    CD = 180

    MP = [2500, 5000]
    无色消耗 = 10


class 技能43(主动技能):
    名称 = '暗黑溯回斩'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.051*1.10) for i in [0, 5432, 5983, 6533, 7084, 7636, 8187, 8738, 9288, 9840, 10391, 10942, 11493, 12044, 12595, 13146, 13697, 14249, 14799, 15350, 15901, 16452, 17004, 17554, 18105, 18656, 19208, 19759, 20309, 20860, 21412, 21963, 22514, 23064,
                                         23616, 24167, 24718, 25269, 25820, 26371, 26922, 27473, 28025, 28575, 29126, 29677, 30228, 30780, 31330, 31881, 32432, 32984, 33535, 34085, 34636, 35188, 35739, 36290, 36840, 37392, 37943, 38494, 39045, 39596, 40147, 40698, 41249, 41801, 42351, 42902, 43453]]
    hit0 = 8
    data1 = [int(i*1.051*1.10) for i in [0, 43453, 47861, 52269, 56677, 61086, 65494, 69903, 74311, 78719, 83127, 87535, 91944, 96352, 100760, 105169, 109577, 113986, 118394, 122802, 127211, 131619, 136028, 140435, 144843, 149252, 153660, 158069, 162477, 166885, 171294, 175702, 180111, 184519, 188927,
                                         193335, 197743, 202152, 206560, 210968, 215377, 219784, 224193, 228601, 233010, 237418, 241826, 246234, 250642, 255051, 259459, 263867, 268276, 272684, 277093, 281501, 285909, 290318, 294726, 299135, 303542, 307950, 312359, 316767, 321176, 325584, 329992, 334401, 338809, 343218, 347626]]
    hit1 = 1
    CD = 60.0

    MP = [960, 7200]
    无色消耗 = 7


class 技能44(被动技能):
    名称 = '时空主宰'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能45(主动技能):
    名称 = '时之止境：幻灭'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.051*1.104) for i in [0, 335476, 413268, 491060, 568852, 646644, 724435, 802227, 880019, 957811, 1035602, 1113394, 1191186, 1268978, 1346769, 1424561, 1502353, 1580145, 1657936, 1735728, 1813520, 1891312, 1969104, 2046895, 2124687, 2202479, 2280271, 2358062, 2435854, 2513646, 2591438, 2669229, 2747021, 2824813, 2902605,
                                          2980397, 3058188, 3135979, 3213771, 3291564, 3369355, 3447147, 3524939, 3602729, 3680521, 3758314, 3836106, 3913898, 3991688, 4069480, 4147272, 4225065, 4302857, 4380647, 4458439, 4536231, 4614024, 4691815, 4769606, 4847398, 4925189, 5002981, 5080774, 5158565, 5236357, 5314148, 5391940, 5469732, 5547524, 5625315, 5703107]]
    hit0 = 1
    CD = 290.0

    MP = [4027, 8055]
    无色消耗 = 15


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'dark_knight'
        self.名称 = '极诣·黑暗武士'
        self.角色 = '黑暗武士'
        self.角色类型 = '输出'
        self.职业 = '黑暗武士'
        # 用来筛CP武器的
        self.转职 = '黑暗武士'
        self.武器选项 = ['光剑', '太刀', '巨剑', '短剑', '钝器']
        self.输出类型选项 = ['物理百分比', '魔法百分比']
        self.防具精通属性 = ['力量', '智力']
        self.类型 = '物理百分比'  # 默认
        self.武器类型 = ['光剑', '太刀', '巨剑', '短剑', '钝器']  # 默认
        self.防具类型 = '轻甲'  # 默认
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.54

        super().__init__()
